.loading {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 0 2rem;
  color: var(--fo-palette-text-secondary);
  background: transparent;
  word-break: break-all;
}

.loading > div {
  display: flex;
  justify-content: center;
  flex-direction: row;

  font-size: 1.5rem;
  font-weight: bold;
}

.loading.ellipsis > div {
  position: relative;
}

.loading.ellipsis > div:after {
  overflow: hidden;
  display: inline-block;
  vertical-align: bottom;
  -webkit-animation: ellipsis steps(4, end) 900ms infinite;
  animation: ellipsis steps(4, end) 900ms infinite;
  content: "\2026"; /* ascii code for the ellipsis character */
  width: 0;
  position: absolute;
  left: 100%;
}

@keyframes ellipsis {
  to {
    width: 1rem;
  }
}

@-webkit-keyframes ellipsis {
  to {
    width: 1rem;
  }
}
